#include <iostream>
#include <string>

using namespace std;

class Country {
public:
    static Country *get_instance();

    Country(Country &)              = delete;
    void operator=(const Country &) = delete;

private:
    Country() {
    }
    ~Country() {
    }
    static Country *instance;
};

Country *Country::instance{nullptr};

Country *Country::get_instance() {
    if (Country::instance == nullptr) {
        static Country *country = new Country();
        Country::instance       = country;
    }
    return Country::instance;
}

void client() {
    Country *c1 = Country::get_instance();
    printf("c1=0x%x\n", (uint64_t)c1);
    Country *c2 = Country::get_instance();
    printf("c2=0x%x\n", (uint64_t)c2);
}

int main(int argc, char *argv[]) {
    client();
    return 0;
}